package com.ctvit.cch.core.utils;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;

/**
 * 数值转换工具类
 *
 * @author heyingcheng
 * @date 2025/08/04
 */
@Slf4j
public class NumberConvertUtils {

    /**
     * 将包含万、亿等单位的数字字符串转换为long类型数值（单位为个位）
     * 例如："1322.2万" -> 13222000
     *
     * @param valueStr 包含单位的数字字符串
     * @return 转换后的long数值
     */
    public static long convertToLong(String valueStr) {
        if (StringUtils.isBlank(valueStr)) {
            return 0L;
        }

        // 去除空格
        valueStr = valueStr.trim();

        // 定义单位映射
        double multiplier = 1;
        if (valueStr.endsWith("万")) {
            multiplier = 10000;
            valueStr = valueStr.substring(0, valueStr.length() - 1);
        } else if (valueStr.endsWith("亿")) {
            multiplier = 100000000;
            valueStr = valueStr.substring(0, valueStr.length() - 1);
        }

        try {
            // 解析数字部分
            double value = Double.parseDouble(valueStr);
            return (long) (value * multiplier);
        } catch (NumberFormatException e) {
            log.warn("无法解析数值字符串: {}", valueStr);
            return 0L;
        }
    }

}
